Asynchronous product unpublication through the GraphQL API
Major Upgrade
In this release, we’ve added the ability to asynchronously unpublish products via our GraphQL APIs. This feature will enable Marketplace Managers to unpublish either individual products or multiple products at the same time with validation and real-time status tracking to ensure data integrity of products is maintained.
📝 Note: Due to infrastructure limitations, the feature will not be available for some customers. For more information on feature availability, contact your AppDirect technical representative.
Customer impacts
- API-driven unpublication
Enables programmatic unpublication of products without requiring UI access—ideal for fully automated, headless commerce systems. - Operational resilience
Asynchronous processing ensures deletion operations are resilient to system failures, with automatic retries and comprehensive error tracking. - Real-time process visibility
Query process status and handle errors through API, ensuring transparency and traceability for long-running operations. - Bulk operations support
Efficient handling of multiple product unpublications simultaneously, ideal for large-scale catalog management, seasonal product removal, and automated lifecycle management. - Robust validation and safety
Comprehensive pre-unpublication validation prevents accidental unpublication of products with active dependencies like purchase orders or marketplace associations. - Consistent architecture
Follows proven Temporal workflow patterns, ensuring maintainability and consistency across product lifecycle operations.
Key changes and enhancements
| Aspect | Changes |
|---|---|
| API access | Introduced GraphQL mutation triggerProductUnpublicationProcess and query productUnpublicationProcess. |
| Processing model | Asynchronous. |
| Validation | Multi-stage checks for purchase orders, marketplace associations, and application status. |
| Data cleanup | Removes published versions of products while preserving working copies. |
| Error handling | Structured error responses with specific error types: DuplicateUnpublicationTriggeredError, MonolithUnpublicationError. |
| Process tracking | Process tracking with status transitions (STARTED → UNPUBLISHING → COMPLETED/ERRORED). |
| Bulk support | Processes multiple product unpublications in parallel, with individual tracking. |
| Authorization | Role-based access control supporting ROLE_CHANNEL_ADMIN with planned ROLE_PARTNER support. |
GraphQL API changes
New mutation:
triggerProductUnpublicationProcess
- Purpose: Initiates asynchronous unpublication for one or more products.
- Input:
- TriggerProductUnpublicationProcessInput: Accepts an array of product IDs.
- Response:
- TriggerProductUnpublicationProcessPayload: Returns process tracking information.